package k1_jdbc.demo02.personOperation.service;

import k1_jdbc.demo02.personOperation.daoImpl.PersonDaoImpl;
import k1_jdbc.demo02.personOperation.pojo.Person;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class PersonService {

    PersonDaoImpl pdi = new PersonDaoImpl();

    /**
     * 添加单条数据
     * @param person
     * @return
     */
    public boolean insert(Person person){
        List<Person> people = new ArrayList<>();
        people.add(person);
        return insert(people);
    }

    /**
     * 添加不定长形式的多条数据
     * @param person
     * @return
     */
    public boolean insert(Person... person){
        List<Person> people = Arrays.asList(person);
        return insert(people);
    }


    /**
     * 添加集合形式的多条数据
     * @param person
     * @return
     */
    public boolean insert(List<Person> person){
        return pdi.insert(person);
    }

    /**
     * 修改单条数据
     * @param person
     * @return
     */
    public boolean update(Person person){
        List<Person> people = new ArrayList<>();
        people.add(person);
        return update(people);
    }

    /**
     * 修改不定长形式的多条数据
     * @param person
     * @return
     */
    public boolean update(Person... person){
        List<Person> people = Arrays.asList(person);
        return update(people);
    }


    /**
     * 修改集合形式的多条数据
     * @param person
     * @return
     */
    public boolean update(List<Person> person){
        return pdi.update(person);
    }

    /**
     * 删除不定长参数形式的多条数据
     * @param ids
     * @return
     */
    public boolean delete(String... ids){
        List<String> idsList = Arrays.asList(ids);
        return delete(idsList);
    }

    /**
     * 删除集合形式的多条数据
     * @param ids
     * @return
     */
    public boolean delete(List<String> ids){
        return pdi.delete(ids);
    }

    /**
     * 查询所有未删除人员信息
     * @return
     */
    public List<Person> selectAllPerson(){
        return pdi.getAll();
    }

    /**
     * 按id查询某个具体人员信息
     * @param id
     * @return
     */
    public Person selectPersonById(String id){
        return pdi.getPersonById(id);
    }

    /**
     * 查询指定页数的人员信息
     * @param pageSize
     * @param pageCount
     * @return
     */
    public List<Person> selectPersonByPage(int pageSize,int pageCount){
        return pdi.getPersonForPage(pageSize, pageCount);
    }

}
